package com.gobang.domain.message;

import lombok.*;

/**
 * 匹配成功通知消息DTO
 * 服务器向客户端发送的匹配成功通知消息
 * 
 * @author System
 * @since 1.0.0
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
public class MatchSuccessMessage extends WebSocketMessage {
    
    /**
     * 匹配成功通知数据
     */
    private MatchSuccessData data;
    
    /**
     * 匹配成功通知数据内部类
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class MatchSuccessData {
        /**
         * 房间ID
         */
        private String roomId;
        
        /**
         * 对手信息
         */
        private OpponentInfo opponent;
        
        /**
         * 玩家颜色
         */
        private String playerColor;
        
        /**
         * 游戏开始时间
         */
        private String startTime;
    }
    
    /**
     * 对手信息内部类
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class OpponentInfo {
        /**
         * 对手ID
         */
        private Long id;
        
        /**
         * 对手用户名
         */
        private String username;
        
        /**
         * 对手当前积分
         */
        private Integer currentScore;
    }
    
    /**
     * 构造函数
     */
    public MatchSuccessMessage(MatchSuccessData data) {
        super("MATCH_SUCCESS");
        this.data = data;
    }
} 